/*
题目描述
设计一个函数，使得给出一个16位整数的原码，能够得到该数的补码。

输入
一个只包含0和1的16位字符串，表示整数的原码。

输出
输入的整数的补码，用只包含0和1的16位字符串表示。
请注意行尾输出换行。
*/
#include <stdio.h>
#include <string.h>

void get_complement(char* original, char* complement) {
    strcpy(complement, original);
    // 判断符号位（最高位）
    if (original[0] == '1') {
        // 1. 符号位不变，数值位取反
        for (int i = 1; i < 16; i++) {
            complement[i] = (original[i] == '0') ? '1' : '0';
        }
        
        // 2. 反码加1得到补码
        int carry = 1;
        for (int i = 15; i >= 1; i--) {
            if (complement[i] == '0' && carry == 1) {
                complement[i] = '1';
                carry = 0;
            } else if (complement[i] == '1' && carry == 1) {
                complement[i] = '0';
                carry = 1;
            }
        }
    }
}

int main() {
    char original[17];
    char complement[17];
    scanf("%16s", original);
    get_complement(original, complement);
    printf("%s\n", complement);
}